﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework;
using System.IO;

namespace WoW_Dives_Soundboard
{
    public class PlaySoundFiles
    {
        #region Initialization
        SoundEffect oddLeftEvenRight;
        SoundEffect fiftyDKPMinus;
        SoundEffect whelpGroups;
        SoundEffect aggroDKP;
        SoundEffect awayFromHeadLee;
        SoundEffect doNotStandBesidePeople;
        SoundEffect DPSSlow;
        SoundEffect evenRight;
        SoundEffect feignDeathVanish;
        SoundEffect hitHardAndFast;
        SoundEffect kickedIntoWhelps;
        SoundEffect stopDots;
        SoundEffect leeCenter;
        SoundEffect loseAgain;
        SoundEffect moreDots;
        SoundEffect moreToCenter;
        SoundEffect moreToCenterTwo;
        SoundEffect nukeDots;
        SoundEffect oddLeft;
        SoundEffect resetAggro;
        SoundEffect saveForLand;
        SoundEffect touchTail;
        SoundEffect youKnowAggro;
        SoundEffect test;
        Stream stream;
        #endregion

        /// <summary>
        /// Constructor
        /// </summary>
        public PlaySoundFiles()
        {
            stream = TitleContainer.OpenStream("Sounds/1357Left2468Right.wav");
            oddLeftEvenRight = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/50DKPMinus.wav");
            fiftyDKPMinus = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/78WhelpGroups.wav");
            whelpGroups = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/Aggro50DKP.wav");
            aggroDKP = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/AwayFromTheHeadLee.wav");
            awayFromHeadLee = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/DoNotStandNextToOtherPeople.wav");
            doNotStandBesidePeople = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/DPSVeryVerySlowly.wav");
            DPSSlow = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/EvenGroupsGotRight.wav");
            evenRight = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/FeignDeathVanish.wav");
            feignDeathVanish = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/HitHardAndFast.wav");
            hitHardAndFast = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/KickedIntoTheWhelps.wav");
            kickedIntoWhelps = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/KStopDots.wav");
            stopDots = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/LeeRunToTheCenter.wav");
            leeCenter = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/Lose50DKPAgain.wav");
            loseAgain = SoundEffect.FromStream(stream);
            
            stream = TitleContainer.OpenStream("Sounds/MoreDots.wav");
            moreDots = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/MoreToCenter.wav");
            moreToCenter = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/MoreToCenter2.wav");
            moreToCenterTwo = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/NukeItDotIt.wav");
            nukeDots = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/OddGroupsGotLeft.wav");
            oddLeft = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/ResetAggro.wav");
            resetAggro = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/SaveForWhenItLands.wav");
            saveForLand = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/TouchTheTail.wav");
            touchTail = SoundEffect.FromStream(stream);

            stream = TitleContainer.OpenStream("Sounds/YouKnowHowAggroWorks.wav");
            youKnowAggro = SoundEffect.FromStream(stream);

            FrameworkDispatcher.Update();
        }

        #region PlayMethods
        public void playOddLeftEvenRight()
        {
            oddLeftEvenRight.Play();
        }

        public void playfiftyDKPMinus()
        {
            fiftyDKPMinus.Play();
        }

        public void playWhelpGroups()
        {
            whelpGroups.Play();
        }
        public void playAggroDKP()
        {
            aggroDKP.Play();
        }

        public void playAwayFromHeadLee()
        {
            awayFromHeadLee.Play();
        }
        public void playdoNotStandBesidePeople()
        {
            doNotStandBesidePeople.Play();
        }
        public void playDPSSlow()
        {
            DPSSlow.Play();
        }
        public void playEvenRight()
        {
            evenRight.Play();
        }
        public void playFeignDeathVanish()
        {
            feignDeathVanish.Play();
        }
        public void playHitHardAndFast()
        {
            hitHardAndFast.Play();
        }
        public void playKickedIntoWhelps()
        {
            kickedIntoWhelps.Play();
        }
        public void playStopDots()
        {
            stopDots.Play();
        }
        public void playLeeCenter()
        {
            leeCenter.Play();
        }
        public void playLoseAgain()
        {
            loseAgain.Play();
        }
        public void playMoreDots()
        {
            moreDots.Play();
        }
        public void playMoreToCenter()
        {
            moreToCenter.Play();
        }
        public void playMoreToCenterTwo()
        {
            moreToCenterTwo.Play();
        }
        public void playNukeDots()
        {
            nukeDots.Play();
        }
        public void playOddLeft()
        {
            oddLeft.Play();
        }
        public void playResetAggro()
        {
            resetAggro.Play();
        }
        public void playSaveForLand()
        {
            saveForLand.Play();
        }
        public void playTouchTail()
        {
            touchTail.Play();
        }
        public void playYouKnowAggro()
        {
            youKnowAggro.Play();
        }
        #endregion
    }
}
